package com.sure.yyr.security.user.dao;

import com.sure.yyr.security.user.Role;
import com.sure.yyr.security.user.User;
import com.sure.yyr.security.user.UserDto;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

//@Mapper
public interface UserDao {



    /**
     * 依照查询条件查询用户信息
     * @param dto
     * @return
     */
    List<User> findUserListByCondition(UserDto dto);


    /**
     * 依照一个账号查询一个用户信息
     * @param u_id
     * @return
     */
    User findUserById(String u_id);

    /**
     * 插入一条用户信息
     * @param dto
     */
    void insertUser(UserDto dto);

    /**
     * 更新用户信息
     * @param dto
     */
    void updateUser(UserDto dto);

    /**
     * 依照账号删除用户信息
     * @param u_ids
     */
    void deleteUser(String[] u_ids);

    /**
     * 依照若干用户账号查询查询这些用户拥有的角色总数量
     * @param u_ids
     * @return
     */
    int findRoleCountByUserIds(@Param("u_ids") String[] u_ids);


    List<Role> findUserRoleList(String u_id);

    @Delete("delete from sys_ur where u_id = #{u_id}")
    void deleteRolesByUserId(String u_id);

    void insertUserRoles(@Param("u_id")String u_id, @Param("ro_ids")Integer[] ro_ids);
}
